update macros and build options for mixed precision #1383
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Some mixed precision clean up of the build systems and macros. Removes the mixed mode option from autotools(always compiles r8 default).
I was unsure whether to change the CMake builds kind options just yet. Since it builds a distinct copy of the library per kind option enabled, this will cause issues in existing cmake builds since the library name includes the kind default. The r4/r8 libraries should both support mixed precision regardless of default so we may want to test with that first and then modify to only build with r8_kind (current cmake default is to only build with r4_kind).
Also cleans up some macros:
use_Netcdf
was removed; it was always set by autotools and only used in the diag managerNO_QUAD_PRECISION
was already not in the code, just removed it from platform.h in favor ofENABLE_QUAD_PRECISION
NO_F95
andNO_F2000
were removed, they set macros with the intention of being able to replace features from those fortrans standards (ie. macro_ALLOCATABLE
that is set to eitherpointer
orallocatable
) but were removedno_4byte_reals
was removedno_8byte_integers
macro was left in since its not really related to the mixed precision updates. Complex overrides were left in as well.Lastly I added a comment for the cray pointer flag since its only used in one module so can be misleading, and removed an unused include file that somehow snuck in.
partial fix for #1330 (leaving it open for cray pointer macros)
How Has This Been Tested?
make distcheck with oneapi 23 on amd
Checklist:
make distcheck
passes